1. Technical Field
The invention relates generally to managing a file system, and more particularly, to a solution for performing one or more file system operations on an archive in the file system and/or an object stored in the archive.
2. Background Art
A user can utilize a graphical user interface (GUI) to perform various file system operations (e.g., file management tasks) on objects (e.g., files, folders, etc.) in a file system. In general, the file system can be located at a computer that the user is operating or on a remote computer accessible via a network (e.g., a file server). Frequently, the user utilizes the GUI to browse the contents of the file system. To this extent, when the file system comprises a hierarchical file system, in which folders can include files and other folders, the GUI can present the user a tree based on the hierarchical structure that can be used to navigate the folders and/or display files included in the folders. Additionally, the GUI can provide different sets of file system operations for files and folders. For example, some GUIs assume that a folder can be “expanded” to view its contents while a file cannot. As a result, files may not be displayed in the tree. Rather, the files stored in a currently selected folder in the tree can be displayed in a separate display area.
In addition to browsing, the GUI can enable the user to perform search functions to locate a desired object. For example, a search can be performed based on all or a portion of the name of the desired object(s), a text search can be performed to locate object(s) whose contents include the specified text, and the like. Once a desired object in the file system has been located, the user can utilize the GUI to request the performance of one or more additional file system operations on the object. For example, the user can utilize the GUI to delete an object, move an object to another location, copy an object, rename an object, open an object, etc.
An archive is a particular type of file that stores one or more other files, often in a compressed form. An archive can be used to readily transfer a group of files, store files that may not need ready access, save storage space, etc. Further, the archive can define a hierarchical structure that includes one or more folders that include the files. In this case, when the files are subsequently extracted for access by a user, the folders are created and the files are placed in the appropriate folders.
To this extent, it is desirable that a user be able to perform the various file system operations on the object(s) stored in the archive. Current solutions that provide some ability to perform these operations are limited in one or more respects. For example, the archive can be one of numerous types of archives (e.g., a zip file, a cabinet file, a tape archive, a Java archive, etc.). Current solutions only support a subset of these formats and do not provide an extensible framework for readily adding support for additional archive types. Further, solutions that enable the performance of a file system operation on an object stored in an archive located on a remote system require the archive to be copied to the local system, where the file system operation is performed. This requirement makes performance of the file system operation less efficient, and adds to the amount of communications required over a network.
In light of this, a need exists for an improved solution for managing a file system that includes an archive. In particular, there exists a need for a solution in which support for various archive types can be readily added/modified. Further, there exists a need for a solution in which a file system operation on an object in an archive can be performed on the system on which the archive is located, regardless of the system on which the request is generated.